{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "134e7f9d",
   "metadata": {},
   "source": [
    "# Demo 10: Device\n",
    "\n",
    "All other demos have by default used device = 'cpu'. In case we want to use cuda, we should pass the device argument to model and dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "7a4ac1e1-84ba-4bc3-91b6-a776a5e7711c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cuda\n"
     ]
    }
   ],
   "source": [
    "from kan import KAN, create_dataset\n",
    "import torch\n",
    "\n",
    "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
    "print(device)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "2075ef56",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "train loss: 5.78e-03 | test loss: 5.89e-03 | reg: 7.32e+00 : 100%|██| 50/50 [00:26<00:00,  1.85it/s]\n"
     ]
    }
   ],
   "source": [
    "model = KAN(width=[4,2,1,1], grid=3, k=3, seed=0, device=device)\n",
    "f = lambda x: torch.exp((torch.sin(torch.pi*(x[:,[0]]**2+x[:,[1]]**2))+torch.sin(torch.pi*(x[:,[2]]**2+x[:,[3]]**2)))/2)\n",
    "dataset = create_dataset(f, n_var=4, train_num=3000, device=device)\n",
    "\n",
    "# train the model\n",
    "#model.train(dataset, opt=\"LBFGS\", steps=20, lamb=1e-3, lamb_entropy=2.);\n",
    "model.train(dataset, opt=\"LBFGS\", steps=50, lamb=5e-5, lamb_entropy=2.);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "3acdcdee-71ca-42a1-98aa-7f7df4a29077",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Gg3mzJmDDRs2wOv1+qk6Iv/bvn07EhIShn02UW5uLmRZxrZt2/xUGSmJ4RJALpcLR44cwfe+970RbSP+85//HIODgzh48KAfqiPyP6/Xi87OTlx66aXDvgYkSUJxcTH27dvHobEQwHAJIIfDgdtvvx133HHHiF4/adIk6HQ6PPfccwpXRhQYTqcTpaWluOyyy4b9WkmSMHfuXLhcLhgMBj9UR0piuARQQkICXnjhBaSnp4/o9bIs46abbsLWrVvh8XgUro7I/2JjY3HvvfeO+KTV7OxsaDQabN26VeHKSGkMlwCTJGlUJ+s98sgjcLlc2Llzp4JVEQWOLMsjvgZkWUZpaSm++OKLYT17FELwhizAGC4hJi8vD0lJSXjmmWc47kwRae7cuXC73ejo6Bjya3p6evCHP/wBg4ODfqyMTsdwCTGSJOGee+7B7t27h7yRnxCCuypT2Bg7diyio6NRW1s75Busv/71rzh27BhiYmL8XB35MFxC0AMPPACv14vq6uoh/XxraysWLVrE88gpLMiyjIqKCjQ0NAxpaEwIgbq6OuTn549qSJqGh+ESgtLS0pCfn4/nnntuSHduv/nNb7B//34kJiYGoDoi/5szZw68Xu+QpuWbTCY4HA7MmTMnAJWRD8MlBEmShOXLl+PEiRNobW0978+63W6sX78e8+bNg0ajCVCFRP6VnJyMpKQkbNq06YI3WB988MGp7WMocBguIWrevHmIjY3F8uXLz3tx1dbWwuFw4PHHHw9gdUT+JUkS5s+fj56envMO93o8HtTV1WHSpEmQZf66CyT+bYeoqKgofO9738OWLVswMDBw1p8RQmD58uXIyclBXl5eYAsk8rOysjJERUXh3XffPecN1hdffAG3240FCxbweUuAMVxC2E9/+lPIsnzO3sunn36KtrY2/Ou//isvLAo7Go0GV155JQ4ePAiLxfKNP/d6vVi/fj0yMzOh1+tVqDCyMVxCWHx8PO699168+eab33j24nQ68YMf/AC5ubn41re+pVKFRP41Z84caDQavPHGG1+7wRJC4LPPPoPFYsGSJUt4c6UChksIkyQJv/rVr5CcnIylS5fCarUCODnO/M///M8wGAz485//zLFmClvR0dFYuHAhGhsbsWfPHgghIIRAd3c3NmzYgNLSUmRnZ6tdZkSKUrsAGh2dTofXXnsNt9xyC265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",
      "text/plain": [
       "<Figure size 500x600 with 12 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8230d562-2635-4adc-b566-06ac679b166a",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
